# -*- coding: utf-8 -*-
from odoo import models, fields, api, _
from odoo.exceptions import ValidationError


class ProductTemplate(models.Model):
    _inherit = 'product.template'

    @api.multi
    def copy(self, default=None):
        self.ensure_one()
        default = dict(default or {})
        default.update({
            'name': _('%s (Copy)') % self.name,
            'default_code': '%s(副本)' % self.default_code,
        })
        return super().copy(default=default)

    @api.constrains('default_code')
    def _check_name_unique(self):
        """产品唯一"""
        if not self.default_code:
            return
        if self.search_count([('default_code', '=', self.default_code)]) > 1:
            raise ValidationError(f'已经存在产品编码为{self.default_code}的产品，产品编码必须唯一')


